﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Sistema.Dao;
using Sistema.Modelo;
using System.Data.SqlClient;
using Sistema.Visao.Pessoa.Cidade;

namespace Sistema.Visao.Pessoa.Bairro
{//abre o namespace
    public partial class dataBairro : Form
    {//abre o form
        //construtor padrão
        public dataBairro()
        {
            InitializeComponent();
        }

        //variaveis globais
        BairroMod mod = new BairroMod();// variavel da classe modelo
        BairroDao dao = new BairroDao();// variavel da classe dao
        CidadeDao daop = new CidadeDao();
        formBairro bairro;
        Boolean tipoCadastro;
        int opcao,codigoBairro,codigoCidade,codEstado;
        string nomeBairro,ibge,auxPesquisa;
        public int auxcodigoEstado;


        //construtor lincado com formBairro para cadastro
        public dataBairro(formBairro form, Boolean tipo)
        {
            InitializeComponent();
            bairro = form;
            tipoCadastro = tipo;
          
        }



        //metodo para atualizar o campo da cidade
        public void atualizaCombo(int Selecao, String Busca)
        {//abre o atualizacombo

            daop.SelecionarCidade(Busca, Selecao);
            SqlDataAdapter i = daop.getSelect();
            DataTable da = new DataTable();
            i.Fill(da);

            cbcodigoCidade.DataSource = da;
            cbcodigoCidade.DisplayMember = "Cidade_Codigo";
            cbcodigoCidade.ValueMember = "Cidade_Codigo";


            cbCidade.DataSource = da;
            cbCidade.DisplayMember = "Cidade_Nome";
            cbCidade.ValueMember = "Cidade_Nome";
            tbCidade.Text = cbCidade.Text;
        }//fecha o atualizacombo

        //construtor lincado com formBairro para alteração
        public dataBairro(formBairro form, string aux2, Boolean tipo, int codBairro, int codCidade)
        {
            InitializeComponent();
            bairro = form;
            tipoCadastro = tipo;
            nomeBairro = aux2;
            codigoBairro = codBairro;
            codigoCidade = codCidade;
            
        }

        private void dataBairro_Load(object sender, EventArgs e)
        {//abre o load

            tbCidade.BackColor = Color.White;
            if (tipoCadastro == true)//opção de cadastro
            {//abre o if
                atualizaCombo(0, "");
            }//fecha o if
            else
            {//abre o else
                atualizaCombo(5, Convert.ToString(codigoCidade));
                tbBairro.Text = nomeBairro;
                
            }//fecha o else
           
        }//fecha o load

        private void button1_Click(object sender, EventArgs e)
        {//botao de salvar
            if (tipoCadastro == true)
            {//if de cadastro
                
                 DialogResult Result = MessageBox.Show("Tem certeza que deseja cadastrar o Bairro " + tbBairro.Text, "Cadastro de Bairros", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (Result == DialogResult.Yes)
                {//abre o if do Tem certeza que deseja cadastrar
                    mod.Bairro_Nome = tbBairro.Text;
                mod.Cidade_Codigo = Convert.ToInt32(cbcodigoCidade.Text);
                dao.ExecutarProcedimentoBairro(mod, 1); // passando os valores da camanda modelo para a dao para poder realizar a execucao no banco 
                MessageBox.Show(Convert.ToString(dao.getMensagem()));// retornando a mensagem da operacao no banco de dados
                    
            //message para perguntar se que um novo cadastro
                    DialogResult ResultNovoCadastro = MessageBox.Show("Gostaria de fazer outro cadastro", "Cadastro de País", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                    // se responder sim, fazer novo cadastro
                    if (ResultNovoCadastro == DialogResult.Yes)
                    {//abre o if novo cadastro
                        tbCidade.Clear();
                        tbBairro.Clear();
                    }//fecha o if novo cadastro
                 // se responder nao, sair do form
                    else if (ResultNovoCadastro == DialogResult.No)
                    {//else if novo cadastro
                        
                bairro.AtualizarGrid(0, "");
                bairro.pegadados();
                this.Hide();
                    }//fecha o else if novo cadastro

                }//fecha o if do Tem certeza que deseja cadastrar
            }//fecha o if do Cadastro
           
            else
            {//abre o else de alteração

                mod.Bairro_Nome = tbBairro.Text;
                mod.Cidade_Codigo = Convert.ToInt32(cbcodigoCidade.Text);
                mod.Bairro_Codigo = codigoBairro;
                dao.ExecutarProcedimentoBairro(mod, 2); // passando os valores da camanda modelo para a dao para poder realizar a execucao no banco 
                MessageBox.Show(Convert.ToString(dao.getMensagem()));// retornando a mensagem da operacao no banco de dados
                bairro.AtualizarGrid(0, "");
                bairro.pegadados();
                this.Hide();
            }//fecha o else de alteração
        }//fecha o botao salvar

        private void button3_Click(object sender, EventArgs e)
        {
            //chama metodo formcidade
            formCidade vai = new formCidade(this, opcao);
            vai.ShowDialog();
        }

        private void btSair_Click(object sender, EventArgs e)
        {
            this.Hide();
        }
    }//fecha o form
}//fecha o namespace
